A vast amount of data is being stored and made accessible on networks such as enterprises and the Internet. The ability to search these large databases poses new challenges to developers to return search results in a reasonable time and with optimum quality. Slow searches may be acceptable if carried out infrequently by users in a single session, but when users routinely perform searches for data, whether personal or business related, the associated costs in user frustration and business resources are unacceptable.
Many search engines allow users to store records of search history, including queries issued, pages selected from the search engine results page, and other actions. A typical user search behavior exhibits a variety of overlapping search contexts. For example, different search behaviors of the same user may relate to shopping, travel, or finance, and at different times. A single user search history oftentimes includes behaviors from many such contexts which are not easily differentiated by time or casual inspection. Moreover, the number of contexts and lack of differentiation increases with the length of the history and density of search behavior, thereby exacerbating analysis of such information.